The present invention relates to an instruction restart processing method and apparatus for a microprogram-controlled data processing apparatus.
In a conventional recovery method, it is common to re-execute an instruction from its start when an intermittent malfunction of a processor occurs. According to such instruction re-execution, as disclosed in Japanese Patent Examined Publication No. 47-48614, the content of a register or a storage which could be destroyed by an instruction to be executed is saved. When a malfunction is detected, the content is returned to the register from the storage to re-execute the instruction from its start. However, as an instruction becomes sophisticated, the amount of information, be saved increases to thereby resulting in a lowering of the processing speed.
Apart from the above, as the system architecture becomes high grade, in addition to a processor malfunction, a missing page fault or the like may appear as a reason for suspending the execution of an instruction, the missing page fault occurring is inevitably due to insufficient virtual storage capacity. In this case, re-execution of a sophisticated instruction is also difficult. To solve this problem, a method of restarting an instruction at its midway point has been proposed. According to the instruction midway restart method or the method for restarting an instruction from an intermediate point, is disclosed in U.S. Pat. No. 4,488,228 and Japanese Patent Unexamined Publication No. 53-84540, when an instruction suspension occurs, the content of a register or storage at that time is saved so that the saved information may be recovered at the restart time to re-execute the processing. The instruction midway restart method, however, poses a problem coping with a large amount of saved information at the suspension time. Specifically, in case of a pipelining data processing apparatus, it is necessary to save control information of plural units so that large scale hardware is required and a long time is required for saving and recovery of the information. Thus, a conventional instruction midway restart method poses a problem of handling a large amount of saved information for use in restarting the instruction.